import store from "@/store";
import axios from "axios";
// 进度条
import nProgress from "nprogress";
import "nprogress/nprogress.css";
const request = axios.create({
  baseURL: "http://gmall-h5-api.atguigu.cn/",
  timeout: "10000",
});

// 请求拦截器
request.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    // 发送请求触发进度条启动
    nProgress.start();
    // 携带userTempId
    const userTempId = store.state.user.userTempId;
    config.headers.userTempId = userTempId;

    // 携带token
    const { token } = store.state.user;
    config.headers.token = token;
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    // 触发响应以后，进度条结束
    nProgress.done();
    return Promise.reject("请求拦截器", error);
  }
);
// 响应拦截器
request.interceptors.response.use(
  function (response) {
    // 触发响应以后，进度条结束
    nProgress.done();

    if (response.data.code === 200) {
      //当拿到我们想要的数据后,直接返回想要的数据(response.data只是后台返回的整体数据,我们想要的数据在response.data.data)
      return response.data.data;
    }
    return Promise.reject({ message: '1' + response.data.message });
  },
  function (error) {
    // 对响应错误做什么
    // 触发响应以后，进度条结束
    nProgress.done();
    return Promise.reject(error);
  }
);
export default request;
